﻿///<copyright>
///Topbot (c) http://ya.topbloger.ru, 2010
///</copyright>
namespace BlogsAPI.OneBlog
{
    using System.IO;
    using System.Text.RegularExpressions;
    using Sites;
    using System;
    using System.Text;
    using System.Net;

    /// <summary>
    /// Сайт знакомств, который последнее время набирает обороты в области блогинга, увы и ах.
    /// </summary>
    [SingleBlog(HostName = "mamba.ru")]
    public class Mamba : StandAlone
    {
        static readonly Regex rMamba = new Regex(@"<div\W+class\W+post.title[^>]+>([^<]+)<.*?<div\W+class\W+post.content[^>]+>(.*?)</div>", Regexoptions);

        /// <summary>
        /// Получение одного поста по ссылке на него и данных о пользователе
        /// </summary>
        /// <param name="linkOnPost">ссылка на пост</param>
        /// <param name="userName">имя пользователя</param>
        /// <param name="btype">тип блогплатформы</param>
        /// <remarks>Может генерить исключения</remarks>
        public override BlogPost GetOnePost(string linkOnPost, string userName, BlogType btype)
        {
            BlogPost bpRet = null;
            //making post here
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(linkOnPost);
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
            //получаем ответ
            string result = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding).ReadToEnd();
            myHttpWebResponse.Close();
            Match m = rMamba.Match(result);
            if (m.Success)
            {
                //создаем объект и заполняем его
                bpRet = new BlogPost(new Uri(Common.FixHttp(linkOnPost)))
                {
                    Body = m.Groups[2].Value.Replace("<p>", "").Trim(),
                    Subject = m.Groups[1].Value,
                    Existance = true
                };
            }
            return bpRet;
        }
    }
}